package org.example.annotation;
// 自定义注解

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

// 表示@Component可以出现在类上
@Target(value = {ElementType.TYPE}) // 标注注解的注解，叫做元注解，@Target()用来修饰@Component可以出现的位置
// 使用某个注解的时候，如果某个注解的属性名是value，那么value可以省略 @Target({ElementType.TYPE})
// 如果某个注解的属性值是数组，并且只有一个元素，那么大括号可以省略 @Target(ElementType.TYPE)

@Retention(RetentionPolicy.RUNTIME)
// @Retention(RetentionPolicy.RUNTIME) 也是一个元注解，用来标注@Component注解最终保留在class文件当中，并且可以被反射机制读取

public @interface Component {
    // 定义注解属性
    String value();
    // String[] names();
}













